package com.eedi.framework.org.service;

import com.eedi.framework.org.controller.sys.vo.config.*;
import com.eedi.framework.org.controller.sys.vo.config.*;

import java.util.List;

/**
 *  机构配置 Service 接口
 *
 *  @author 永聚长青源码
 */
public interface SysOrgConfigService {

    /**
     * 获取机构配置基本信息
     * @return 机构配置基本信息
     */
    SysOrgConfigResp get();

    /**
     * 保存机构配置基本信息
     * @param req
     */
    void setup(SysOrgConfigReq req);


    /**
     * 保存 机构配置中的海报配置信息
     * @param createReqVO
     * @return
     */
    String createPlacard(SysOrgConfigPlacardReq createReqVO);

    /**
     * 更新 机构配置中的海报配置信息
     * @param updateReqVO
     */
    void updatePlacard(SysOrgConfigPlacardUpdateReq updateReqVO);

    /**
     * 删除 机构配置中的海报配置信息
     * @param orgConfigPlacardId
     */
    void deletePlacardById(String orgConfigPlacardId);

    /**
     * 分页查询 机构配置中的海报配置信息列表
     * @param orgConfigId
     * @return
     */
    List<SysOrgConfigPlacardResp> listPlacardsByOrgConfigId(String orgConfigId);

    /**
     * 通过ID 获取一条 机构配置中的海报配置信息
     * @param orgConfigId
     * @param orgConfigPlacardId
     * @return
     */
    SysOrgConfigPlacardResp getByPlacardId(String orgConfigId, String orgConfigPlacardId);

    /**
     * 保存 机构配置中的友情链接配置信息
     * @param createReqVO
     * @return
     */
    String createLinks(SysOrgConfigLinksReq createReqVO);

    /**
     * 更新 机构配置中的友情链接配置信息
     * @param updateReqVO
     */
    void updateLinks(SysOrgConfigLinksUpdateReq updateReqVO);

    /**
     * 删除 机构配置中的友情链接配置信息
     * @param orgConfigLinksId
     */
    void deleteLinksById(String orgConfigLinksId);

    /**
     * 分页查询 机构配置中的友情链接配置信息列表
     * @param orgConfigId
     * @return
     */
    List<SysOrgConfigLinksResp> listLinksByOrgConfigId(String orgConfigId);

    /**
     * 通过ID 获取一条 机构配置中的友情链接配置信息
     * @param orgConfigId
     * @param orgConfigLinksId
     * @return
     */
    SysOrgConfigLinksResp getByLinksId(String orgConfigId, String orgConfigLinksId);

    /**
     * 保存 机构配置中的导航栏配置信息
     * @param createReqVO
     * @return
     */
    String createGuidance(SysOrgConfigGuidanceReq createReqVO);

    /**
     * 更新 机构配置中的导航栏配置信息
     * @param updateReqVO
     */
    void updateGuidance(SysOrgConfigGuidanceUpdateReq updateReqVO);

    /**
     * 删除 机构配置中的导航栏配置信息
     * @param orgConfigGuidanceId
     */
    void deleteGuidanceById(String orgConfigGuidanceId);

    /**
     * 分页查询 机构配置中的导航栏配置信息列表
     * @param orgConfigId
     * @return
     */
    List<SysOrgConfigGuidanceResp> listGuidancesByOrgConfigId(String orgConfigId);

    /**
     * 通过ID 获取一条 机构配置中的导航栏配置信息
     * @param orgConfigId
     * @param orgConfigGuidanceId
     * @return
     */
    SysOrgConfigGuidanceResp getByGuidanceId(String orgConfigId, String orgConfigGuidanceId);

    /**
     * 机构登录前，获取机构通用配置的所有配置项
     * @return
     */
    SysOrgConfigAllResp getAllDetails();
}
